<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
// 迭代函数的 map 和 filter

// filter 意思：过滤
var arr = [111, 28, 19, 1, 4, 19];
// 案例：过滤出 arr 中 大于 20 的数字
var result = arr.filter(function(item) {
  return item > 20;
});
// 总结 filter 的作用：为每个 item 执行 回调函数，若回调函数 return 为 true, 保留该 item。

// ---------------------

// map ->  映射  
var arr1 = [19, 20, 39, 18];
// 案例：将 arr1 的每个元素 ，「映射」成其值 「先乘2，再加1」 - 映射规则
var result1 = arr1.map(function(item) {
  // 「先乘2，再加1」 - 映射规则
  // 无数的映射规则....
  return item * 2 + 1
});

// 总结 map 的作用：本质为「映射」，即为每个 item 执行回调函数，return 出来 新的「映射规则的结果」
// console.log(result1);

</script>